package org.dromara.oce.controller.admin;

import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaIgnore;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.oce.domain.qo.OceSiteQo;
import org.dromara.oce.domain.req.SyncSiteReq;
import org.dromara.oce.domain.vo.OceSiteVo;
import org.dromara.oce.service.OceSiteService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 橙子建站落地页
 *
 * @author dsbb
 * @date 2025-06-10
 * @module 管理平台接口
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/oce/site")
@SaIgnore
public class OceSiteController extends BaseController {

    private final OceSiteService oceSiteService;

    /**
     * 查询橙子建站落地页列表
     */
    @SaCheckPermission("oce:site:list")
    @GetMapping("/list")
    public TableDataInfo<OceSiteVo> list(OceSiteQo qo, PageQuery pageQuery) {
        return oceSiteService.queryPageList(qo, pageQuery);
    }

    /**
     * 同步广告主下橙子建站落地页
     * @param req
     * @return
     */
    @GetMapping("/syncSite")
    @SaCheckPermission("oce:site:syncSite")
    public R syncSite(SyncSiteReq req){
        oceSiteService.syncSite(req);
        return R.ok();
    }



//    /**
//     * 导出橙子建站落地页列表
//     */
//    @SaCheckPermission("oce:site:export")
//    @Log(title = "橙子建站落地页", businessType = BusinessType.EXPORT)
//    @PostMapping("/export")
//    public void export(OceSiteQo qo, HttpServletResponse response) {
//        List<OceSiteVo> list = oceSiteService.queryList(qo);
//        ExcelUtil.exportExcel(list, "橙子建站落地页", OceSiteVo.class, response);
//    }
//
//    /**
//     * 获取橙子建站落地页详细信息
//     *
//     * @param siteId 主键
//     */
//    @SaCheckPermission("oce:site:query")
//    @GetMapping("/{siteId}")
//    public R<OceSiteVo> getInfo(@NotNull(message = "主键不能为空")
//                                     @PathVariable Long siteId) {
//        return R.ok(oceSiteService.queryById(siteId));
//    }
//
//    /**
//     * 新增橙子建站落地页
//     */
//    @SaCheckPermission("oce:site:add")
//    @Log(title = "橙子建站落地页", businessType = BusinessType.INSERT)
//    @RepeatSubmit()
//    @PostMapping()
//    public R<Void> add(@Validated(AddGroup.class) @RequestBody OceSiteBo bo) {
//        return toAjax(oceSiteService.insertByBo(bo));
//    }
//
//    /**
//     * 修改橙子建站落地页
//     */
//    @SaCheckPermission("oce:site:edit")
//    @Log(title = "橙子建站落地页", businessType = BusinessType.UPDATE)
//    @RepeatSubmit()
//    @PutMapping()
//    public R<Void> edit(@Validated(EditGroup.class) @RequestBody OceSiteBo bo) {
//        return toAjax(oceSiteService.updateByBo(bo));
//    }
//
//    /**
//     * 删除橙子建站落地页
//     *
//     * @param siteIds 主键串
//     */
//    @SaCheckPermission("oce:site:remove")
//    @Log(title = "橙子建站落地页", businessType = BusinessType.DELETE)
//    @DeleteMapping("/{siteIds}")
//    public R<Void> remove(@NotEmpty(message = "主键不能为空")
//                          @PathVariable Long[] siteIds) {
//        return toAjax(oceSiteService.deleteWithValidByIds(List.of(siteIds), true));
//    }
}
